Skip to content

feat(scaffold-core): create @stackbilt/scaffold-core package skeleton (#212)#219

Merged
stackbilt-admin merged 4 commits into
mainfrom
feat/scaffold-core-package
Jun 12, 2026
Merged

feat(scaffold-core): create @stackbilt/scaffold-core package skeleton (#212)#219
stackbilt-admin merged 4 commits into
mainfrom
feat/scaffold-core-package

Conversation

@stackbilt-admin

Copy link
Copy Markdown
Member

Summary

Modules stubbed

Module Public API
classify/ classify(intention) → ClassifyResult
knowledge/ getKnowledge(pattern) → PatternKnowledge
governance/ buildGovernance(facts, knowledge) → GovernanceDocs
codegen/ generateFiles(facts) → ScaffoldFile[]
materializer/ materializeScaffold(facts) → MaterializerResult
root index.ts buildScaffold(intention, options?) → LocalScaffoldResult

All stub functions throw Not implemented: use @stackbilt/scaffold-core@x.y when <module>/ module lands (or return valid empty results where documented). The knowledge/ stubs intentionally return empty arrays rather than throwing to make the orchestrator partially testable.

Notes

  • Version is 0.1.0 per the design doc (experimental, not 1.0.0)
  • All types defined in src/types.ts — no cross-package imports
  • Module implementations will land in child issues per module

Test plan

  • pnpm install — workspace package registered cleanly
  • pnpm run build — TypeScript compiles with zero errors (tsc --build)
  • pnpm test — all 20 new scaffold-core tests pass (types compile, exports verified, stubs throw as documented, package metadata correct)

🤖 Generated with Claude Code

Kurt Overmier and others added 4 commits June 12, 2026 05:12
…#212)

Zero-dependency, zero-inference, zero-network scaffold engine package with full
module skeleton (classify, knowledge, governance, codegen, materializer) and stub
implementations. All stubs throw "Not implemented" pending child issue PRs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces stubs in materializer/adf.ts, materializer/project.ts, and
materializer/index.ts with real implementations extracted from
stackbilt-web/src/lib/scaffold-materializer.ts.

- adf.ts: renderManifestAdf, renderCoreAdf, renderStateAdf + generateAdfFiles()
- project.ts: DomainHints, PrdSections, STACK_ITEM_MAPPINGS, FIRST_PARTY_DEPS,
  all template renderers (package.json, wrangler.toml, tsconfig.json,
  src/index.ts, test file, README, schema.sql, contract stub) + generateProjectFiles()
- index.ts: materializeScaffold(facts, rawFacts?) → MaterializerResult

Adapts source's Facts+intention API to the package's structured ScaffoldFacts
type. Maps source FileRole values (governance→adf, scaffold→entry, doc→readme,
etc.) to types.ts FileRole. Zero TypeScript errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…kbilt-web

Replace all stubs in classify/ and knowledge/ with real implementations
extracted from stackbilt-web/src/lib/scaffold-core.ts. Patterns, scoring
functions, enricher, bindings, quality-profile inference, pattern-specific
threat catalog (9 patterns), domain threats (PHI/PCI/PII/telephony), and
ADR context/decision blocks are all live. Types adapted to match types.ts
canonical definitions (PatternName, QualityProfile, ThreatEntry, etc.).
Build passes zero TypeScript errors.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add governance/index.ts: buildGovernance(facts, knowledge) → GovernanceDocs
- Add governance/threat-model.ts: Markdown threat model from facts + pattern threats
- Add governance/adr.ts: ADR-001 (pattern choice) + ADR-002 (compliance domains)
- Add governance/test-plan.ts: Trait-aware test plan generator
- Complete codegen/files.ts: full baseFiles + addGovernanceFiles implementation
- Complete codegen/routes.ts: route handler file generation per pattern
- Complete codegen/wrangler.ts: binding definition generator
- Update codegen/index.ts: export addGovernanceFiles
- Update main index.ts: orchestrate governance + codegen grafting in buildScaffold
- Migrate classify.test.ts from stackbilt-web scaffold-domain-fixtures suite
- Update types.test.ts: remove stub-throws assertions, assert real implementations work
- Fix .gitignore: anchor governance/ to root-only (/governance/) so packages/scaffold-core/src/governance/ is tracked

Fixes build-and-test CI failure (TS2307: Cannot find module './governance/index')

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: create @stackbilt/scaffold-core package — extract scaffold engine from stackbilt-web

1 participant